home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1999 February / EnigmA AMIGA RUN 34 (1999)(G.R. Edizioni)(IT)[!][issue 1999-02].iso / www / amitrix / awn_1.7.lha / AWebNews_1.7 / confignews.awebrx < prev    next >
Text File  |  1996-12-22  |  12KB  |  373 lines

  1. /*
  2. $VER: AWebNews.cnfg 1.7
  3. 22 Dec 1996
  4. */
  5.  
  6. /* Play with this script you could regret it !
  7.  
  8. ... rename and wildcard delete happen
  9. ... external comands are enabled
  10.  
  11. See comments at start of news.awebrx for usage.
  12. */
  13.  
  14. /*Show calling parameters at top of page use 'on' or 'off'*/
  15. showcomand='off'
  16.  
  17.  
  18.  
  19. options results
  20. term='.'||'0d'x
  21. newsgroupsfile="newsgroups"
  22.  
  23. ports = show('P')
  24. parse var ports dummy 'AWEB.' portnr .
  25. address value 'AWEB.' || portnr
  26.  
  27. 'GET ACTIVEPORT'
  28.  
  29. awebhost = result
  30.  
  31. if ~show('L','rexxsupport.library') then
  32. if ~addlib('rexxsupport.library',0,-30,0) then
  33. exit(20)
  34.  
  35. parse arg addr
  36. parse source prog_type result_flag called resolved ext host .
  37.  
  38. last_slash = lastpos('/',called)
  39. last_colon = lastpos(':',called)
  40. dir_pos = max(last_slash,last_colon)
  41. if dir_pos > 0 then
  42. current_dir = left(called,dir_pos)
  43. else
  44. current_dir = ''
  45.  
  46.  
  47. address value awebhost
  48. call readinfo
  49. if ft='config' then call writeconfig
  50. if ft='del' then call deletegroups
  51. call configinfo
  52.  
  53. if many=''then many='10'
  54. if bacc=''then bacc='#ffffff'
  55. if texc=''then texc='#000000'
  56. if spath='' then spath='t:'
  57. if bfile='' then bfile='t:AWebNews.batch'
  58. address command 'delete T:configawebnews.#?.html >NIL:'
  59. fname='T:configawebnews.'time(S)'.html'
  60.  
  61. if open(1,fname,w) then do
  62.  
  63.   call writeln(1,'<html><head><title>')
  64.   call writeln(1,'News Reader Utilities')
  65.   call writeln(1,'</title></head>')
  66.   if colo='on' then  call writeln(1,'<body bgcolor="'bacc'" text="'texc'">')
  67.   if showcomand='on' then call writeln(1,addr '<br>')
  68.  
  69.   call writeln(1,'<form action="x-aweb:rexx/'||called||'">')
  70.   call writeln(1,'<a name = "config"></a>')
  71.   call writeln(1,'<center><hr>')
  72.   call writeln(1,' <input type="submit" value="Store Configuration"> - ')
  73.   call writeln(1,'<a href="x-aweb:rexx/'current_dir'news.awebrx">Read News </a>')
  74.   call writeln(1,' - <a href="#dpage">Maintain News Groups</a> - ')
  75.   call writeln(1,'<a href="file://localhost/'current_dir'AWebNews_doc.html#cfg">Help</a><br>')
  76.    call writeln(1,'<table>')
  77.   call writeln(1,'<tr><td><td align=center><b>Reader Configuration </b> - ')
  78.  call writeln(1,'<a href="file://localhost/'current_dir'AWebNews_doc.html#cfg">Help</a>')
  79.   call writeln(1,'<tr><td align=center><b>Required</b> ')
  80.   call writeln(1,'<tr><td>News Host<td><input size=54 name="host" value="'NewsHost'">')
  81.   call writeln(1,'<tr><td align=center><b>Optional</b>')
  82.  
  83.   call writeln(1,'<tr><td>Get How Many ?<td><input size=3 name="many" value="'many'"> ')
  84.   call writeln(1,'( for retrieving several files at a time )')
  85.  
  86.   if scan = 'on' then call writeln(1,'<tr><td>Display <td>Index List <input type="checkbox" checked name="scan"> ')
  87.   else call writeln(1,'<tr><td>Display<td> Index List<input type="checkbox"  name="scan">')
  88.  
  89.   if sho = 'on' then call writeln(1,'Short Headers <input  type="checkbox" checked name="sho"> ')
  90.   else call writeln(1,'Short Headers <input type="checkbox"  name="sho"> ')
  91.   if lho = 'on' then call writeln(1,'Long Headers <input  type="checkbox" checked name="lho"> ')
  92.   else call writeln(1,'Long Headers <input type="checkbox"  name="lho"> ')
  93.  
  94.   call writeln(1,'<tr><td>Filter')
  95. call writeln(1,'<td><input size=30 name="phil" value="'fixta(phil)'">')
  96. if fcase = 'on' then call writeln(1,' Ignore case <input type="checkbox" checked name="fcase"> ')
  97. else call writeln(1,' Ignore case  <input type="checkbox"  name="fcase"> ')
  98. if philo = 'on' then call writeln(1,' Use Filter <input type="checkbox" checked name="philo"> ')
  99. else call writeln(1,' Use Filter <input type="checkbox"  name="philo"> ')
  100.  
  101.   call writeln(1,'<tr><td>Colors ')
  102.   call writeln(1,'<td>Background <input size=7 name="bacc" value='bacc'>')
  103.   call writeln(1,'Text <input size=7 name="texc" value='texc'> Use colors')
  104.   if colo='on' then call writeln(1,'<input type="checkbox" checked name="colo"> ')
  105.   else  call writeln(1,'<input type="checkbox"  name="colo"> ')
  106.  
  107.  
  108.   call writeln(1,'<tr><td>Save Path <td><input size=54 name="spath" value="'spath'">')
  109.   call writeln(1,'<tr><td>Batch File <td><input size=54 name="bfile" value="'bfile'">')
  110.   call writeln(1,'<tr><td><td><hr>')
  111.   call writeln(1,'<tr><td><a name = "postconfig"></a>')
  112.   call writeln(1,'<td align=center><b>Posting Configuration</b> - ')
  113.   call writeln(1,'<a href="file://localhost/'current_dir'AWebNews_doc.html#post_cfg">Help</a>')
  114.   call writeln(1,'<tr><td align=center><b>Required</b>')
  115.   call writeln(1,'<tr><td>From:<td><input size=54 name="eadr" value="'eadr'">')
  116.   if tah='' then tah=15
  117.   if taw='' then taw=75
  118.   call writeln(1,'<tr><td>Text Area <td><input size=3 name="taw" value="'taw'"> ')
  119.   call writeln(1,' wide <input size=3 name="tah" value="'tah'"> high ')
  120.   call writeln(1,'<tr><td align=center><b>Optional</b>')
  121.   call writeln(1,'<tr><td>Distribution: <td><input size=54 name="disth" value="'disth'">')
  122.   if disto='on' then call writeln(1,' <td>use <input type="checkbox" checked name="disto"> ')
  123.   else  call writeln(1,'<td>use <input type="checkbox"  name="disto">')
  124.   call writeln(1,'<tr><td>Reply-To:<td><input size=54 name="reph" value="'reph'">')
  125.   if repo='on' then call writeln(1,'<td>use <input type="checkbox" checked name="repo"> ')
  126.   else  call writeln(1,'<td>use <input type="checkbox"  name="repo">')
  127.  
  128.   call writeln(1,'<tr><td>Signature file<td><input size=54 name="sigf" value="'sigf'">')
  129.   if sigo='on' then call writeln(1,'<td>use <input type="checkbox" checked name="sigo"> ')
  130.   else  call writeln(1,' <td>use <input type="checkbox"  name="sigo"> ')
  131.  
  132.   call writeln(1,'<tr><td>Headers file<td><input size=54 name="headf" value="'headf'">')
  133.   if heado='on' then call writeln(1,'<td>use <input type="checkbox" checked name="heado"> ')
  134.   else  call writeln(1,'<td>use <input type="checkbox"  name="heado"> ')
  135.  
  136.   call writeln(1,'<tr><td>Follow ups ')
  137.  
  138.   if qhead='on' then call writeln(1,'<td> Quote Header <input type="checkbox" checked name="qhead"> ')
  139.   else  call writeln(1,'<td>Quote header <input type="checkbox"  name="qhead">')
  140.  
  141.   if qbody='on' then call writeln(1,' Quote Body <input type="checkbox" checked name="qbody"> ')
  142.   else  call writeln(1,' Quote Body <input type="checkbox" name="qbody">')
  143.   call writeln(1,'</table>')
  144.  
  145.   call writeln(1,' <input type="submit" value="Store Configuration">')
  146.   call writeln(1,'<input type="hidden" value="config" name="ft"> ')
  147.  
  148.   call writeln(1,'</form>')
  149.  
  150.   call writeln(1,'<form action="x-aweb:rexx/'||called||'">')
  151.   call writeln(1,'<a name="dpage"></a>')
  152.   call writeln(1,'<hr><center><b>Maintain Group List</b>')
  153.   call writeln(1,'<a href="file://localhost/'current_dir'AWebNews_doc.html#form_delete_ng">Help</a><br>')
  154.   call writeln(1,'<br>Select News Groups to REMOVE from list')
  155.   call writeln(1,'<br><select multiple name="grouplist" size="5">')
  156.  
  157.   if  open(7,current_dir||newsgroupsfile,r) then do
  158.  
  159.     groupinfo='.'
  160.     do   while groupinfo~=""
  161.       groupinfo = readln(7)
  162.       parse var groupinfo grp list
  163.       if grp~="" then call writeln(1,'<option> 'grp)
  164.  
  165.     end
  166.     call close(7)
  167.   end
  168.   call writeln(1,'</select><br>')
  169.   call writeln(1,'<b>CAUTION </b><input type="submit" value="DELETE news groups"> can not be undone!<br>')
  170.   call writeln(1,'<a href="#config">Configuration</a>')
  171.   call writeln(1,' - <a href="x-aweb:rexx/'current_dir'news.awebrx">Read News </a>')
  172.   call writeln(1,'<input type="hidden" value="del" name="ft"> ')
  173.   call writeln(1,'</form>')
  174.   call writeln(1, '<hr></body></html>')
  175.   call close(1)
  176.  
  177. end
  178. 'OPEN file://localhost/'fname'#config'
  179.     'ALLOWCMD'
  180. 'SCREENTOFRONT'
  181. 'ACTIVATEWINDOW'
  182. exit
  183.  
  184. configinfo:
  185. if  open(2,current_dir||'newsconfig',r) then do
  186.   configinfo = fixhtml(readch(2,3000))
  187.  
  188.   parse var configinfo . 'qhead ' qhead '0a'x
  189.   parse var configinfo . 'qbody ' qbody '0a'x
  190.   parse var configinfo . 'colo ' colo '0a'x
  191.   parse var configinfo . 'texc ' texc '0a'x
  192.   parse var configinfo . 'bacc ' bacc '0a'x
  193.   parse var configinfo . 'repo ' repo '0a'x
  194.   parse var configinfo . 'reph ' reph '0a'x
  195.   parse var configinfo . 'eadr ' eadr '0a'x
  196.   parse var configinfo . 'disto ' disto '0a'x
  197.   parse var configinfo . 'disth ' disth '0a'x
  198.   parse var configinfo . 'sigo ' sigo '0a'x
  199.   parse var configinfo . 'sigf ' sigf '0a'x
  200.   parse var configinfo . 'heado ' heado '0a'x
  201.   parse var configinfo . 'headf ' headf '0a'x
  202.   parse var configinfo . 'bfile ' bfile '0a'x
  203.   parse var configinfo . 'host ' NewsHost '0a'x
  204.   parse var configinfo . 'many ' many '0a'x
  205.   parse var configinfo . 'sho ' sho '0a'x
  206.   parse var configinfo . 'lho ' lho '0a'x
  207.   parse var configinfo . 'spath ' spath '0a'x
  208.   parse var configinfo . 'tah ' tah '0a'x
  209.   parse var configinfo . 'taw ' taw '0a'x
  210.   parse var configinfo . 'scan ' scan '0a'x
  211.   parse var configinfo . 'phil ' phil '0a'x
  212.   parse var configinfo . 'philo ' philo '0a'x
  213.   parse var configinfo . 'fcase ' fcase '0a'x
  214.   call close(2)
  215. end
  216. return
  217.  
  218. readinfo:
  219. phil=fixphil(addr);
  220. parse var addr . 'colo="' colo  '"' .
  221. parse var addr . 'bacc="' bacc '"' .
  222. parse var addr . 'texc="' texc '"' .
  223. parse var addr . 'tah="' tah '"' .
  224. parse var addr . 'taw="' taw '"' .
  225. parse var addr . 'qbody="' qbody '"' .
  226. parse var addr . 'qhead="' qhead '"' .
  227. parse var addr . 'eadr="' eadr '"' .
  228. parse var addr . 'disto="' disto '"' .
  229. parse var addr . 'disth="' disth '"' .
  230. parse var addr . 'sigo="' sigo '"' .
  231. parse var addr . 'spath="' spath '"' .
  232. parse var addr . 'sigf="' sigf '"' .
  233. parse var addr . 'heado="' heado '"' .
  234. parse var addr . 'headf="' headf '"' .
  235. parse var addr . 'repo="' repo '"' .
  236. parse var addr . 'reph="' reph '"' .
  237. parse var addr . 'bfile="' bfile '"' .
  238. parse var addr . 'host="' NewsHost '"' .
  239. parse var addr . 'ft="' ft '"' .
  240. parse var addr . 'many="' many '"' .
  241. parse var addr . 'sho="' sho '"' .
  242. parse var addr . 'lho="' lho '"' .
  243. parse var addr . 'scan="' scan '"' .
  244. parse var addr . 'fcase="' fcase '"' .
  245. parse var addr . 'philo="' philo '"' .
  246. return
  247.  
  248. writeconfig:
  249. if  exists(current_dir||'newsconfig') then call delete(current_dir||'newsconfig')
  250. if  open(2,current_dir||'newsconfig',w) then do
  251.   call writeln(2,'host 'NewsHost)
  252.   call writeln(2,'bfile 'bfile)
  253.   call writeln(2,'many 'many)
  254.   call writeln(2,'spath 'spath)
  255.   call writeln(2,'sho 'sho)
  256.   call writeln(2,'lho 'lho)
  257.   call writeln(2,'tah 'tah)
  258.   call writeln(2,'taw 'taw)
  259.   call writeln(2,'scan 'scan)
  260.   call writeln(2,'eadr 'eadr)
  261.   call writeln(2,'sigo 'sigo)
  262.   call writeln(2,'sigf 'sigf)
  263.   call writeln(2,'heado 'heado)
  264.   call writeln(2,'headf 'headf)
  265.   call writeln(2,'disto 'disto)
  266.   call writeln(2,'disth 'disth)
  267.   call writeln(2,'repo 'repo)
  268.   call writeln(2,'reph 'reph)
  269.   call writeln(2,'qbody 'qbody)
  270.   call writeln(2,'qhead 'qhead)
  271.   call writeln(2,'bacc 'bacc)
  272.   call writeln(2,'texc 'texc)
  273.   call writeln(2,'colo 'colo)
  274.   call writeln(2,'fcase 'fcase)
  275.   call writeln(2,'phil 'phil)
  276.   call writeln(2,'philo 'philo)
  277.   call close(2)
  278. end
  279. return
  280.  
  281. deletegroups:
  282. if  open(6,current_dir||newsgroupsfile'.new',w) then  do
  283.   if  open(7,current_dir||newsgroupsfile,r) then   do
  284.     do   until groupinfo = ''
  285.       groupinfo = readln(7)
  286.       parse var groupinfo grp .
  287.  
  288.       listwork=addr
  289.       dflag=''
  290.       do until nextgrp=''
  291.         parse var listwork . 'grouplist="' nextgrp '"' listwork
  292.         if nextgrp=grp then dflag='on'
  293.       end
  294.       if dflag~='on'&groupinfo~='' then call writeln(6,groupinfo)
  295.     end
  296.     call close(7)
  297.   end
  298.  
  299.   call close(6)
  300.   if exists(current_dir||newsgroupsfile) then  call delete(current_dir||newsgroupsfile)
  301.   call rename(current_dir||newsgroupsfile'.new', current_dir||newsgroupsfile)
  302. end
  303.  
  304.  
  305. return
  306.  
  307. fixhtml: procedure
  308. parse arg a
  309. a=a'-'
  310. c=''
  311. parse var a b '&' a
  312. do while a~=''
  313.   c=c||b'&'
  314.   parse var a b '&' a
  315. end
  316. a=c||b
  317.  
  318. c=''
  319. parse var a b '<' a
  320. do while a~=''
  321.   c=c||b'<'
  322.   parse var a b '<' a
  323. end
  324. a=c||b
  325. c=''
  326.  
  327. parse var a b '>' a
  328. do while a~=''
  329.   c=c||b'>'
  330.   parse var a b '>' a
  331. end
  332. a=c||b
  333. return left(a,length(a)-1)
  334.  
  335. fixta: procedure
  336. parse arg a
  337. a=fixhtml(a)
  338. a=a'-'
  339. c=''
  340. parse var a b '"' a
  341. do while a~=''
  342.   c=c||b'"'
  343.   parse var a b '&' a
  344. end
  345. a=c||b
  346. return left(a,length(a)-1)
  347.  
  348. fixphil: procedure
  349. parse arg a
  350. c=''
  351. parse var a b '*"' a
  352. do while a~=''
  353.   c=c||b'*q'
  354.   parse var a b '*"' a
  355. end
  356. a=c||b
  357. parse var a . 'phil="' a '"' .
  358. c=''
  359. parse var a b '*' a
  360. do while a~=''
  361.   d=left(a,1)
  362.   if d='N' then  c=c||b||'0a'x
  363.   else if d='q' then  c=c||b||'"'
  364.   else if d='"'|d='*'|d="'"|d='$'then c=c||b||d
  365.   else  do
  366.     c=c||b||'*'
  367.     a=d||a
  368.   end
  369.   parse VALUE (substr(a,2)) WITH b '*' a
  370. end
  371. return c||b
  372.  
  373.